草庐IT

javascript oop、instanceof 和基类

全部标签

c# - 将基类转换为派生类

这个问题在这里已经有了答案:Isitpossibletoassignabaseclassobjecttoaderivedclassreferencewithanexplicittypecast?(31个答案)关闭9年前。在C#中是否可以将基类对象显式转换为它的派生类之一?目前认为我必须为我的派生类创建一个构造函数,它接受一个基类对象作为参数并复制属性值。我不太喜欢这个想法,所以我想尽可能避免它。这似乎不应该起作用(对象被实例化为新基,因此不应为派生类的额外成员分配内存)但C#似乎允许我这样做:classBaseClass{...somestuff...}classDerivedClas

c# - 从基类调用时,GetType() 会返回派生程度最高的类型吗?

从基类调用时,GetType()会返回最派生的类型吗?例子:publicabstractclassA{privateTypeGetInfo(){returnSystem.Attribute.GetCustomAttributes(this.GetType());}}publicclassB:A{//Fieldsherehavesomecustomattributesaddedtothem}或者我应该像下面这样创建一个派生类必须实现的抽象方法吗?publicabstractclassA{protectedabstractTypeGetSubType();privateTypeGetInf

c# - 从基类调用时,GetType() 会返回派生程度最高的类型吗?

从基类调用时,GetType()会返回最派生的类型吗?例子:publicabstractclassA{privateTypeGetInfo(){returnSystem.Attribute.GetCustomAttributes(this.GetType());}}publicclassB:A{//Fieldsherehavesomecustomattributesaddedtothem}或者我应该像下面这样创建一个派生类必须实现的抽象方法吗?publicabstractclassA{protectedabstractTypeGetSubType();privateTypeGetInf

javascript - 如何在无法实例化的 JavaScript 中创建抽象基类

我有课functionNode(){//implementation}和另一个类functionAttributionalNode(){this.prototype.setAttr=function(attr){this.atText=attr;};}AttributionalNode.prototype=newNode();AttributionalNode.prototype.constructor=AttributionalNode;如何使类Node()无法实例化?例如,当我尝试varnode=newNode();所以它抛出异常? 最佳答案

javascript - 如何在无法实例化的 JavaScript 中创建抽象基类

我有课functionNode(){//implementation}和另一个类functionAttributionalNode(){this.prototype.setAttr=function(attr){this.atText=attr;};}AttributionalNode.prototype=newNode();AttributionalNode.prototype.constructor=AttributionalNode;如何使类Node()无法实例化?例如,当我尝试varnode=newNode();所以它抛出异常? 最佳答案

JavaScript isPrototypeOf 与 instanceof 用法

假设我们有以下内容:functionSuper(){//initcode}functionSub(){Super.call(this);//otherinitcode}Sub.prototype=newSuper();varsub=newSub();然后,在我们的ocde的其他部分,我们可以使用以下任一方法来检查关系:subinstanceofSuper;或Super.prototype.isPrototypeOf(sub)无论哪种方式,我们都需要拥有对象(sub)和父构造函数(Super)。那么,有什么理由让您使用一个与另一个吗?有没有其他情况区分的更清楚?我已经仔细阅读了24644

JavaScript isPrototypeOf 与 instanceof 用法

假设我们有以下内容:functionSuper(){//initcode}functionSub(){Super.call(this);//otherinitcode}Sub.prototype=newSuper();varsub=newSub();然后,在我们的ocde的其他部分,我们可以使用以下任一方法来检查关系:subinstanceofSuper;或Super.prototype.isPrototypeOf(sub)无论哪种方式,我们都需要拥有对象(sub)和父构造函数(Super)。那么,有什么理由让您使用一个与另一个吗?有没有其他情况区分的更清楚?我已经仔细阅读了24644

javascript - 为什么在 JavaScript 中 "Object instanceof Function"和 "Function instanceof Object"都返回 true?

为什么在JavaScript中ObjectinstanceofFunction和FunctioninstanceofObject都返回true?我在SafariWebInspector中试过了。 最佳答案 我花了一段时间才弄明白,但这真的值得花时间。首先,让我们看看instanceof是如何工作的。引自MDN,Theinstanceofoperatortestswhetheranobjecthasinitsprototypechaintheprototypepropertyofaconstructor.[instanceof]现在,

javascript - 为什么在 JavaScript 中 "Object instanceof Function"和 "Function instanceof Object"都返回 true?

为什么在JavaScript中ObjectinstanceofFunction和FunctioninstanceofObject都返回true?我在SafariWebInspector中试过了。 最佳答案 我花了一段时间才弄明白,但这真的值得花时间。首先,让我们看看instanceof是如何工作的。引自MDN,Theinstanceofoperatortestswhetheranobjecthasinitsprototypechaintheprototypepropertyofaconstructor.[instanceof]现在,

javascript - function F() { if (!(this instanceof F)) { return new F() }; ... }

结构的用法是什么:functionF(){if(!(thisinstanceofF)){returnnewF()};...?我在Node.js的pty.js中找到了这个。原代码如下:functionTerminal(file,args,opt){if(!(thisinstanceofTerminal)){returnnewTerminal(file,args,opt);}varself=this,env,cwd,name,cols,rows,term;-------------------SKIP-----------------------------------Terminal.t